<?php

namespace Jinxing\Admin\Models;

use Illuminate\Database\Eloquent\Model;

/**
 * Class Config
 * @method static firstOrCreate($conditions, $options = [])
 * @method boolean save()
 * @property array $config
 * @package Jinxing\Admin\Models
 */
class Config extends Model
{
    /**
     * 定义表名称
     *
     * @var string
     */
    protected $table = 'configs';

    /**
     * 定义主键
     *
     * @var string
     */
    protected $primaryKey = 'id';

    /**
     * 定义表字段信息
     *
     * @var array
     */
    public $columns = [
        'id',
        'name',
        'config',
        'created_at',
        'updated_at',
    ];

    /**
     * 不可被批量赋值的属性。
     *
     * @var array
     */
    protected $guarded = ['id'];

    /**
     * 获取配置信息
     *
     * @param string $value
     *
     * @return array
     */
    public function getConfigAttribute($value)
    {
        return $value ? json_decode($value, true) : [];
    }

    /**
     * 设置配置信息
     *
     * @param string $value
     *
     * @return void
     */
    public function setConfigAttribute($value)
    {
        $this->attributes['config'] = json_encode($value, 320);
    }
}